package com.tedu.controller;

import com.tedu.pojo.Item;
import com.tedu.pojo.ItemCat;
import com.tedu.service.ItemCatService;
import com.tedu.service.ItemService;
import com.tedu.vo.SysResult;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * Author：毕龙
 * Date: 2022/9/20 9:13
 */

@RestController
@CrossOrigin
@RequestMapping("/itemCat")
public class ItemCatController {
    @Autowired
    private ItemCatService itemCatService;


    /**
     * 需求分析：
     *  请求路径/itemCat/findItemCatList/{level}
     *  请求类型 : get
     *  请求参数：level
     *  返回值：SysResult
     */
    @GetMapping("/findItemCatList/{level}")
    public SysResult findItemCatList(@PathVariable Integer level){
        List<ItemCat> list = itemCatService.findItemCatList(level);
        return SysResult.success(list);
    }

    /**
     * 需求分析：
     *  请求路径：/itemcat/status/{id}/{status}
     *  请求：put
     *  请求参数：id   status
     *  返回值：SysResult对象
     */
    @PutMapping("/status/{id}/{status}")
    public SysResult updateStatus(ItemCat itemCat){
        itemCatService.updateStatus(itemCat);
        return SysResult.success();
    }

    /**
     * 需求分析：
     *  请求路径：/itemcat/saveItemCat
     *  请求类型：POST
     *  请求参数：表单数据
     *  返回值对象：SysResutl
     */
    @PostMapping("/saveItemCat")
    public SysResult saveItemCat(@RequestBody ItemCat itemCat){
        itemCatService.saveItemCat(itemCat);
        return SysResult.success();
    }
    /**
     * 需求分析：
     *   请求路径：/itemCat/updateItemCat
     *   请求类型：put
     *   请求参数：表单提交的itemCat对象
     *   返回值：SysResult
     *
     */
    @PutMapping("/updateItemCat")
    public SysResult updateItemCat(@RequestBody ItemCat itemCat){
        itemCatService.updateItemCat(itemCat);
        return SysResult.success();

    }

    /**
     * 需求分析：
     *  请求路径：/itemcat/deleteItemCat?id=XX&level=XX
     *  请求的类型：delete
     *  业务描述：当删除节点为父级时，应当删除自身和所有的子节点
     *  请求参数：id / level
     *  返回值：SysResult对象
     */
    @DeleteMapping("deleteItemCat")
    public SysResult deleteItemCat(ItemCat itemCat){

        itemCatService.deleteItemCat(itemCat);
        return SysResult.success();
    }




}
